<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        // 问题：输入年月日，判断日期是否合法
        // 分析：
        //    1 年是否合法      2000-3000之间的整数
        //    2 月是否合法      1-12之间的整数
        //    3 日期是否合法    1-？之间的整数  这个问号跟月份有关系

        // prompt  
        //    点取消会得到  null
        //    点确定会得到字符串  如果没有输入，得到的是空串''

        var year = prompt('年份');
        var month = prompt('月份');
        var day = prompt('日期');

        // 测试有没有拿到
        // console.log(year, month, day);

        //  1 年是否合法  2000-3000之间的整数   year >= 2000 && year <= 3000 && year % 1 === 0
        if (year >= 2000 && year <= 3000 && year % 1 === 0) {
            // 2年份正确以后才判断月份   1-12之间的整数  month >= 1 && month <= 12 && month % 1 === 0
            if (month >= 1 && month <= 12 && month % 1 === 0) {
                // 3 年月都正确才判断日期   1-？之前的整数   这个问号跟月份有关系

                // 声明一个变量求这个问号，判断最大的天数
                var max;
                // 根据月份判断
                // 1 3 5 7 8 10 12   31天
                // 4 6 9 11   30天
                // 2   28/29天

                // 1 3 5 7 8 10 12   31天
                if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) {
                    max = 31;
                }
                // 4 6 9 11   30天
                else if (month == 4 || month == 6 || month == 9 || month == 11) {
                    max = 30;
                }
                else if (month == 2) {
                    // 判断闰年
                    if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
                        max = 29;
                    }
                    else {
                        max = 28;
                    }
                }

                if (day >= 1 && day <= max && day % 1 === 0) {
                    alert('ok');
                }
                else {
                    alert('日期不合法');
                }
            }
            else {
                alert('月份不正确');
            }

        }
        else {
            alert('年不正确');
        }




    </script>

</body>

</html>